// 导入路由相关依赖
import { createRouter, createWebHistory } from 'vue-router';
// 导入组件
import LoginForm from '../components/LoginForm.vue';
import RegisterForm from '../components/RegisterForm.vue';
import ChatWindow from '../components/ChatWindow.vue';
import UserProfile from '../components/UserProfile.vue';

// 定义路由配置
const routes = [
  {
    path: '/login',
    component: LoginForm,
    meta: { requiresAuth: false }  // 不需要认证的路由
  },
  {
    path: '/register',
    component: RegisterForm,
    meta: { requiresAuth: false }  // 不需要认证的路由
  },
  {
    path: '/chat',
    component: ChatWindow,
    meta: { requiresAuth: true }   // 需要认证的路由
  },
  {
    path: '/profile',
    component: UserProfile,
    meta: { requiresAuth: true }   // 需要认证的路由
  },
  {
    path: '/',
    redirect: '/chat'              // 根路径重定向到聊天页面
  }
];

// 创建路由实例
const router = createRouter({
  history: createWebHistory(),
  routes
});

// 全局路由守卫
router.beforeEach((to, from, next) => {
  // 检查用户是否已登录
  const isAuthenticated = !!localStorage.getItem('token');
  
  // 路由权限控制
  if (to.meta.requiresAuth && !isAuthenticated) {
    // 需要认证但未登录，重定向到登录页
    next('/login');
  } else if (to.path === '/login' && isAuthenticated) {
    // 已登录用户访问登录页，重定向到聊天页
    next('/chat');
  } else {
    // 其他情况正常放行
    next();
  }
});

export default router;
